package com.hwpt.hwaccount.feature.splash;

import com.hwpt.hwaccount.core.data.local.entity.UserEntity;
import java.util.List;

/**
 * 引导页MVP契约类，定义View和Presenter的交互接口
 */
public interface SplashContract {

    /**
     * View层接口，负责UI展示和页面跳转
     */
    interface View {
        /**
         * 跳转到首页
         */
        void navigateToHome();

        /**
         * 跳转到登录页
         */
        void navigateToLogin();

        /**
         * 显示错误信息
         * @param message 错误信息
         */
        void showError(String message);
    }

    /**
     * Presenter层接口，负责业务逻辑处理
     */
    interface Presenter {
        /**
         * 初始化方法，通常在Activity的onCreate中调用
         */
        void start();

        /**
         * 检查用户登录状态
         */
        void checkUserStatus();

        /**
         * 销毁方法，释放资源
         */
        void destroy();
    }

    /**
     * Model层接口，负责数据获取和存储
     */
    interface Model {
        /**
         * 获取所有用户信息
         * @param callback 数据回调接口
         */
        void getAllUsers(OnUserInfoCallback callback);

        /**
         * 数据回调接口
         */
        interface OnUserInfoCallback {
            void onSuccess(List<UserEntity> userEntities);
            void onError(Throwable e);
        }
    }
}
